#ifndef _TILE_H
#define _TILE_H

#include "SFML\Graphics.hpp"
#include <string>

enum TileTypes
{
	TILE_TYPE_COLLIDEABLE	= 0x0001,
	TILE_TYPE_SLOPE			= 0x0002,
	TILE_TYPE_ANIMATED		= 0x0004,
	TILE_TYPE_NORMAL		= 0x0008
};

class RenderManager;
class Tile
{
public:
	Tile(unsigned short, const sf::Vector2f&, sf::Texture&, short);
	virtual ~Tile(void);

	void draw(RenderManager* renderManager);
	const sf::Sprite& getSprite() { return _base; }
	bool isCollideable();
	const sf::Vector2f& getPosition() { return _base.getPosition(); }
	short getType() { return _type; }
	sf::FloatRect collisionBox();

	sf::Vector2f _position;		// remove this later, as you can get position from the sprite.
protected:
	sf::Sprite _base;
	short _type;
	static unsigned short _tileSize;
};

#endif // _TILE_H

